package com.teradata.observer.subject;

import com.teradata.observer.core.EventListener;

/**
 * Created by lyndon on 2018/5/29.
 *
 * 在调用每个方法的时候，想要打印一个日志，通常观察者模式会和代理模式混合使用
 *
 */
public class Subject extends EventListener {

    // 通常采用动态代理来实施监控，避免了代码侵入

    public void add() {
        System.out.println("调用添加的方法");
        trigger(SubjectEventType.ON_ADD);
    }

    public void remove(){
        System.out.println("调用删除的方法");
        trigger(SubjectEventType.ON_REMOVE);
    }


    /*  很像javascript代码，如下
     *  input
     *  input.addListener("click", function(){
     *
     *  })
     *
     *
     */




}
